﻿#ifndef _OI_PLSCANNERCORE_OIGUIDEPRODUCTDLG_HPP_
#define _OI_PLSCANNERCORE_OIGUIDEPRODUCTDLG_HPP_

#include "PLScannerCore/OiPLScannerCore.hpp"
#include "Ctrl/OiDialog.hpp"

namespace Oi
{
    namespace PLScannerCore
    {
        class OI_PLSCANNER_CORE_API GuideProductDlg : public Ctrl::Dialog
        {
            Q_OBJECT
        public:
            enum SettingMode
            {
                GLOBAL,
                LOCAL,
            };

        public:
            GuideProductDlg(QWidget* parent = nullptr);

        public:
            void autoProfile();
        signals:
            void formalSignal();
        public slots:
            void accept();
            void onFinished();
            void onNext();
            void onLast();
            void onSwitchModeChanged();

        public:
            void setParams(const ProductParams params);
            QList<QPointF> getMeasurePoints();
            ProductParams params() const;
            QString formalName() const;
        public:
            void closeEvent(QCloseEvent* evt);
            
        public slots:
            void onUpdateProfile();
        private:
            OI_DISABLE_COPY(GuideProductDlg);
            OI_DECLARE_IMPL(GuideProductDlg);
        };
    }
}

#endif
